Add function accessors for x11 window/pixmap impl
authorAlexander Larsson <alexl@redhat.com>
Fri, 4 Sep 2009 15:52:46 +0000 (17:52 +0200)
committerAlexander Larsson <alexl@redhat.com>
Fri, 4 Sep 2009 15:59:17 +0000 (17:59 +0200)
gdk/gdk.symbols
gdk/x11/gdkdrawable-x11.c
gdk/x11/gdkdrawable-x11.h
gdk/x11/gdkx.h

index 22226a64676e73381e95569efebface5212cb3d9..593059a7a419a65b1ecb87c3fc17e522f9356cb0 100644 (file)
@@ -1219,6 +1219,8 @@ gdk_x11_display_get_startup_notification_id
 #if IN_FILE(__GDK_DRAWABLE_X11_C__)
 gdk_x11_drawable_get_xdisplay
 gdk_x11_drawable_get_xid
+gdk_x11_window_get_drawable_impl
+gdk_x11_pixmap_get_drawable_impl
 #endif
 
 #if IN_FILE(__GDK_FONT_X11_C__)
index b2cac294c33d8d3d74ac25d5174bb7720d1e6431..ab98b7fcd21e262765e7c93fb1dfbd69dcb1d278 100644 (file)
@@ -956,6 +956,17 @@ gdk_x11_drawable_get_xid (GdkDrawable *drawable)
   return ((GdkDrawableImplX11 *)impl)->xid;
 }
 
+GdkDrawable *
+gdk_x11_window_get_drawable_impl (GdkWindow *window)
+{
+  return ((GdkWindowObject *)window)->impl;
+}
+GdkDrawable *
+gdk_x11_pixmap_get_drawable_impl (GdkPixmap *pixmap)
+{
+  return ((GdkPixmapObject *)pixmap)->impl;
+}
+
 /* Code for accelerated alpha compositing using the RENDER extension.
  * It's a bit long because there are lots of possibilities for
  * what's the fastest depending on the available picture formats,
index 7ff60085a1a6e8cf5e27caa1af80af9e7f566de2..2b885366f055146131180b7685b377357e6a8450 100644 (file)
@@ -92,6 +92,8 @@ void  _gdk_x11_convert_to_format      (guchar           *src_buf,
 /* Note that the following take GdkDrawableImplX11, not the wrapper drawable */
 void _gdk_x11_drawable_finish           (GdkDrawable  *drawable);
 void _gdk_x11_drawable_update_size      (GdkDrawable  *drawable);
+GdkDrawable *gdk_x11_window_get_drawable_impl (GdkWindow *window);
+GdkDrawable *gdk_x11_pixmap_get_drawable_impl (GdkPixmap *pixmap);
 
 G_END_DECLS
 
index baa395d392f569f40e3dbf723cd697ae96da6895..d8aa42c843acdecb9b47cb668c56c75f076f146e 100644 (file)
@@ -40,6 +40,8 @@ extern Display          *gdk_display;
 
 Display *gdk_x11_drawable_get_xdisplay    (GdkDrawable *drawable);
 XID      gdk_x11_drawable_get_xid         (GdkDrawable *drawable);
+GdkDrawable *gdk_x11_window_get_drawable_impl (GdkWindow *window);
+GdkDrawable *gdk_x11_pixmap_get_drawable_impl (GdkPixmap *pixmap);
 Display *gdk_x11_image_get_xdisplay       (GdkImage    *image);
 XImage  *gdk_x11_image_get_ximage         (GdkImage    *image);
 Display *gdk_x11_colormap_get_xdisplay    (GdkColormap *colormap);
@@ -105,10 +107,10 @@ gint     gdk_x11_get_default_screen       (void);
 
 #define GDK_DISPLAY_XDISPLAY(display) (gdk_x11_display_get_xdisplay (display))
 
-#define GDK_WINDOW_XDISPLAY(win)      (gdk_x11_drawable_get_xdisplay (((GdkWindowObject *)win)->impl))
+#define GDK_WINDOW_XDISPLAY(win)      (gdk_x11_drawable_get_xdisplay (gdk_x11_window_get_drawable_impl (win)))
 #define GDK_WINDOW_XID(win)           (gdk_x11_drawable_get_xid (win))
 #define GDK_WINDOW_XWINDOW(win)       (gdk_x11_drawable_get_xid (win))
-#define GDK_PIXMAP_XDISPLAY(win)      (gdk_x11_drawable_get_xdisplay (((GdkPixmapObject *)win)->impl))
+#define GDK_PIXMAP_XDISPLAY(win)      (gdk_x11_drawable_get_xdisplay (gdk_x11_pixmap_get_drawable_impl (win)))
 #define GDK_PIXMAP_XID(win)           (gdk_x11_drawable_get_xid (win))
 #define GDK_DRAWABLE_XDISPLAY(win)    (gdk_x11_drawable_get_xdisplay (win))
 #define GDK_DRAWABLE_XID(win)         (gdk_x11_drawable_get_xid (win))